#include "lvgl.h"

void lcd_test(void)
{
    lv_obj_t *container = lv_obj_create(lv_scr_act());
    lv_obj_clear_flag(container, LV_OBJ_FLAG_SCROLLABLE);
    lv_obj_set_size(container, lv_pct(100), lv_pct(100));
    lv_obj_align(container, LV_ALIGN_CENTER, 0, 0);
    lv_obj_set_style_pad_all(container, 0, 0);
    lv_obj_set_style_radius(container, 0, 0);

    /* RGB */
    lv_obj_t *bgr = lv_obj_create(container);
    lv_obj_t *bgg = lv_obj_create(container);
    lv_obj_t *bgb = lv_obj_create(container);
    lv_obj_set_style_bg_color(bgr, lv_color_make(255, 0, 0), 0);
    lv_obj_set_style_bg_color(bgg, lv_color_make(0, 255, 0), 0);
    lv_obj_set_style_bg_color(bgb, lv_color_make(0, 0, 255), 0);
    lv_obj_set_size(bgr, lv_pct(99), lv_pct(33));
    lv_obj_set_size(bgg, lv_pct(99), lv_pct(33));
    lv_obj_set_size(bgb, lv_pct(99), lv_pct(33));
    lv_obj_align(bgr, LV_ALIGN_TOP_MID, 0, 2);
    lv_obj_align(bgg, LV_ALIGN_CENTER, 0, 0);
    lv_obj_align(bgb, LV_ALIGN_BOTTOM_MID, 0, -2);

    /* RGB Bit Check1 */
    // lv_obj_t *last_bit = 0;
    // for (uint8_t i = 0; i < 24; i++)
    // {
    //     lv_color_t color = {0};
    //     ((uint8_t *)&color)[i / 8] <<= (1 << (i % 8));
    //     lv_obj_t *bit = lv_obj_create(container);
    //     lv_obj_set_style_bg_color(bit, color, 0);
    //     lv_obj_set_size(bit, lv_pct(99), lv_pct(99 / 16));
    //     if (last_bit)
    //         lv_obj_align_to(bit, last_bit, LV_ALIGN_OUT_BOTTOM_MID, 0, 2);
    //     else
    //         lv_obj_align(bit, LV_ALIGN_TOP_MID, 0, 2);
    //     last_bit = bit;
    // }

    /* RGB Bit Check2 */
    // lv_obj_t *last_bit = 0;
    // for (uint8_t i = 0; i < 16; i++)
    // {
    //     lv_color_t color = {0};
    //     color.full |= (1 << i);
    //     // color.full |= (1 << (i + 5) % 16);
    //     lv_obj_t *bit = lv_obj_create(container);
    //     lv_obj_set_style_bg_color(bit, color, 0);
    //     lv_obj_set_size(bit, lv_pct(99), lv_pct(99 / 16));
    //     lv_obj_set_scroll_dir(bit, LV_DIR_NONE);
    //     if (last_bit)
    //         lv_obj_align_to(bit, last_bit, LV_ALIGN_OUT_BOTTOM_MID, 0, 2);
    //     else
    //         lv_obj_align(bit, LV_ALIGN_TOP_MID, 0, 2);
    //     last_bit = bit;
    // }
}
